import type { BaseFields, PageParams } from "@/api/typing";

/**新增/修改用户参数 */
export interface UserParams {
  /**用户ID */
  userId: string;
  /**用户名 */
  username: string;
  /**密码 */
  password: string;
  /**邮箱 */
  email: string;
  /**昵称 */
  nickname: string;
  /**关联人员ID */
  personId: string;
  /**头像 */
  avatar: string;
  /**角色ID列表 */
  roleIdList: string[];
}

/**分页查询用户参数 */
export interface QueryParams extends PageParams {
  /**用户名 */
  username: string;
  /**昵称 */
  nickname: string;
}

/**分页查询用户响应 */
export interface QueryResult extends BaseFields {
  /**用户ID */
  userId: string;
  /**用户名 */
  username: string;
  /**密码 */
  password: string;
  /**昵称 */
  nickname: string;
  /**默认角色ID */
  defaultRoleId: string;
  /**头像 */
  avatar: string;
}

/**删除用户参数 */
export interface DeleteParams {
  /**用户ID */
  userId: string;
}

/**查询用户关联角色列表参数 */
export interface QueryRolesParams {
  /**用户ID */
  userId: string;
}

/**分页查询拥有教师角色的用户参数 */
export interface QueryTeacherParams {
  /**关键字 */
  keyword: string;
}

/**分页查询拥有教师角色的用户响应 */
export interface QueryTeacherResult {
  /**用户ID */
  userId: string;
  /**用户名 */
  username: string;
  /**关联人员名称 */
  personName: string;
}

/**查询单个用户人员响应 */
export interface QueryUserByIdResult {
  /**用户ID */
  userId: string;
  /**用户名 */
  username: string;
  /**关联人员名称 */
  personName: string;
}
